package main

import "fmt"

type class struct {
	PublicProperty  any
	privateProperty any
}

func NewObject(p1, p2 any) *class {
	return &class{
		PublicProperty:  p1,
		privateProperty: p2,
	}
}

func (obj *class) SetPrivateProperty(p any) {
	obj.privateProperty = p
}

func (obj *class) GetPrivateProperty() any {
	return obj.privateProperty
}

func main() {
	obj := NewObject("public", "private")
	fmt.Println(obj.PublicProperty)
	fmt.Println(obj.GetPrivateProperty())
	obj.SetPrivateProperty("new")
	fmt.Println(obj.GetPrivateProperty())
}
